package request

// 财务对账请求
type FinancialReconciliationReq struct {
	StartDate       string  `form:"start_date" binding:"required" json:"start_date"` // 开始日期
	EndDate         string  `form:"end_date" binding:"required" json:"end_date"`     // 结束日期
	OrderStatus     int32   `form:"order_status" json:"order_status"`                // 订单状态
	PaymentMethod   int32   `form:"payment_method" json:"payment_method"`            // 支付方式
	Page            int32   `form:"page" json:"page"`                                // 页码
	PageSize        int32   `form:"page_size" json:"page_size"`                      // 每页大小
	TransactionType int32   `form:"transaction_type" json:"transaction_type"`        // 交易类型
	UserId          string  `form:"user_id" json:"user_id"`                          // 用户ID
	DriverId        string  `form:"driver_id" json:"driver_id"`                      // 司机ID
	MinAmount       float32 `form:"min_amount" json:"min_amount"`                    // 最小金额
	MaxAmount       float32 `form:"max_amount" json:"max_amount"`                    // 最大金额
	OrderSn         string  `form:"order_sn" json:"order_sn"`                        // 订单编号
}

// 导出财务对账请求
type ExportFinancialReconciliationReq struct {
	StartDate       string  `form:"start_date" binding:"required" json:"start_date"` // 开始日期
	EndDate         string  `form:"end_date" binding:"required" json:"end_date"`     // 结束日期
	OrderStatus     int32   `form:"order_status" json:"order_status"`                // 订单状态
	PaymentMethod   int32   `form:"payment_method" json:"payment_method"`            // 支付方式
	UserId          string  `form:"user_id" json:"user_id"`                          // 操作人ID
	TransactionType int32   `form:"transaction_type" json:"transaction_type"`        // 交易类型
	FilterUserId    string  `form:"filter_user_id" json:"filter_user_id"`            // 过滤用户ID
	FilterDriverId  string  `form:"filter_driver_id" json:"filter_driver_id"`        // 过滤司机ID
	MinAmount       float32 `form:"min_amount" json:"min_amount"`                    // 最小金额
	MaxAmount       float32 `form:"max_amount" json:"max_amount"`                    // 最大金额
	OrderSn         string  `form:"order_sn" json:"order_sn"`                        // 订单编号
}

// 创建争议请求
type CreateDisputeReq struct {
	BillingId   uint32 `form:"billing_id" binding:"required" json:"billing_id"`     // 账单ID
	UserId      uint32 `form:"user_id" binding:"required" json:"user_id"`           // 用户ID
	DisputeType uint32 `form:"dispute_type" binding:"required" json:"dispute_type"` // 争议类型
	Priority    uint32 `form:"priority" json:"priority"`                            // 优先级
	Description string `form:"description" binding:"required" json:"description"`   // 争议描述
	Evidence    string `form:"evidence" json:"evidence"`                            // 证据材料
}

// 解决争议请求
type ResolveDisputeReq struct {
	DisputeId      uint32  `form:"dispute_id" binding:"required" json:"dispute_id"`           // 争议ID
	ResolutionType uint32  `form:"resolution_type" binding:"required" json:"resolution_type"` // 解决类型
	Resolution     string  `form:"resolution" binding:"required" json:"resolution"`           // 解决方案
	Compensation   float32 `form:"compensation" json:"compensation"`                          // 补偿金额
}

// 获取争议记录请求
type GetDisputeRecordsReq struct {
	Status   uint32 `form:"status" json:"status"`       // 状态 0-全部 1-待处理 2-处理中 3-已解决 4-已关闭
	Page     int32  `form:"page" json:"page"`           // 页码
	PageSize int32  `form:"page_size" json:"page_size"` // 每页数量
}

// 综合验证请求
type ComprehensiveValidationReq struct {
	StartDate           string `form:"start_date" binding:"required" json:"start_date"`  // 开始日期
	EndDate             string `form:"end_date" binding:"required" json:"end_date"`      // 结束日期
	ValidateIncome      bool   `form:"validate_income" json:"validate_income"`           // 是否验证收入记录
	ValidateExpense     bool   `form:"validate_expense" json:"validate_expense"`         // 是否验证支出记录
	ValidatePayment     bool   `form:"validate_payment" json:"validate_payment"`         // 是否验证支付处理
	ValidateRefund      bool   `form:"validate_refund" json:"validate_refund"`           // 是否验证退款处理
	ValidateReports     bool   `form:"validate_reports" json:"validate_reports"`         // 是否验证财务报表
	ValidateCalculation bool   `form:"validate_calculation" json:"validate_calculation"` // 是否验证计算逻辑
	ValidateConsistency bool   `form:"validate_consistency" json:"validate_consistency"` // 是否验证数据一致性
	ValidateConcurrency bool   `form:"validate_concurrency" json:"validate_concurrency"` // 是否验证并发处理
}

// 获取异常摘要请求
type GetExceptionSummaryReq struct {
	StartDate string `form:"start_date" binding:"required" json:"start_date"` // 开始日期
	EndDate   string `form:"end_date" binding:"required" json:"end_date"`     // 结束日期
	UserId    string `form:"user_id" json:"user_id"`                          // 用户ID（可选）
}

// 自动检测和修复请求
type AutoDetectAndFixReq struct {
	StartDate string `form:"start_date" binding:"required" json:"start_date"` // 开始日期
	EndDate   string `form:"end_date" binding:"required" json:"end_date"`     // 结束日期
	FixType   uint32 `form:"fix_type" binding:"required" json:"fix_type"`     // 修复类型
	UserId    string `form:"user_id" json:"user_id"`                          // 用户ID（可选）
}

// 人工处理请求
type ManualProcessReq struct {
	AbnormalId    uint32 `form:"abnormal_id" binding:"required" json:"abnormal_id"`       // 异常ID
	ProcessResult string `form:"process_result" binding:"required" json:"process_result"` // 处理结果
	ProcessedBy   string `form:"processed_by" binding:"required" json:"processed_by"`     // 处理人
	Action        uint32 `form:"action" binding:"required" json:"action"`                 // 处理动作
}

// 争议解决请求
type DisputeResolutionReq struct {
	DisputeId  uint32 `form:"dispute_id" binding:"required" json:"dispute_id"`   // 争议ID
	Resolution string `form:"resolution" binding:"required" json:"resolution"`   // 解决方式
	ResolvedBy string `form:"resolved_by" binding:"required" json:"resolved_by"` // 处理人
	Reason     string `form:"reason" binding:"required" json:"reason"`           // 解决原因
}

// 交易详情相关请求
type TransactionDetailByIdReq struct {
	Id uint32 `form:"id" binding:"required" json:"id"` // 交易详情ID
}

// 账单管理相关请求
type GenerateBillingReq struct {
	UserId   uint32 `form:"user_id" binding:"required" json:"user_id"`     // 用户ID
	UserType uint32 `form:"user_type" binding:"required" json:"user_type"` // 用户类型 1-乘客 2-司机
	BillType uint32 `form:"bill_type" binding:"required" json:"bill_type"` // 账单类型 1-日账单 2-周账单 3-月账单
	Period   string `form:"period" binding:"required" json:"period"`       // 账单周期
}

type GetBillingListReq struct {
	UserId   uint32 `form:"user_id" binding:"required" json:"user_id"`     // 用户ID
	UserType uint32 `form:"user_type" binding:"required" json:"user_type"` // 用户类型
	Page     int32  `form:"page" json:"page"`                              // 页码
	PageSize int32  `form:"page_size" json:"page_size"`                    // 每页数量
}

type GetBillingDetailsReq struct {
	BillingId uint32 `form:"billing_id" binding:"required" json:"billing_id"` // 账单ID
}

type ConfirmBillingReq struct {
	BillingId uint32 `form:"billing_id" binding:"required" json:"billing_id"` // 账单ID
}

// 异常交易相关请求
type GetAbnormalTransactionsReq struct {
	Status   uint32 `form:"status" json:"status"`       // 状态 0-全部 1-待处理 2-已处理 3-已忽略
	Page     int32  `form:"page" json:"page"`           // 页码
	PageSize int32  `form:"page_size" json:"page_size"` // 每页数量
}

type ProcessAbnormalTransactionReq struct {
	AbnormalId    uint32 `form:"abnormal_id" binding:"required" json:"abnormal_id"`       // 异常ID
	ProcessResult string `form:"process_result" binding:"required" json:"process_result"` // 处理结果
}

// 获取导出进度
type GetExportProgress struct {
	TaskId string `json:"task_id" form:"task_id"` // 任务ID
	UserId uint32 `json:"user_id" form:"user_id"` // 用户ID
}

// 获取导出任务状态
type GetExportTaskFinancialStatus struct {
	TaskId string `json:"task_id" form:"task_id"` // 任务ID
	UserId uint32 `json:"user_id" form:"user_id"` // 用户ID
}

// 获取导出任务列表
type ExportTaskListReq struct {
	UserId    uint32 `json:"task_id" form:"task_id"`       // 用户ID
	Page      int32  `json:"page" form:"page"`             // 页码
	PageSize  int32  `json:"page_size" form:"page_size"`   // 每页数量
	Status    uint32 `json:"status" form:"v"`              // 状态过滤，0-全部
	StartDate string `json:"start_date" form:"start_date"` // 开始日期过滤
	EndDate   string `json:"end_date" form:"end_date"`     // 结束日期过滤
}

// 删除导出任务请求
type DeleteExportTaskReq struct {
	TaskId string `json:"task_id" form:"task_id"` // 任务ID
	UserId uint32 `json:"user_id" form:"user_id"` // 用户ID
}
